﻿using GalaSoft.MvvmLight.Messaging;
using System;
using System.Windows;
using System.Windows.Input;

namespace TransControlSystem.View
{
    /// <summary>
    /// TagInfoEditWindow.xaml 的交互逻辑
    /// </summary>
    public partial class TagInfoEditWindow : Window
    {
        public TagInfoEditWindow()
        {
            InitializeComponent();
            //注册关闭窗体消息
            Messenger.Default.Register<NotificationMessage>(this, (nm) =>
            {
                if (nm.Notification == "HideEditValueWindow")
                {
                    if (nm.Sender == DataContext)
                        Hide();
                }
            });
        }
        //当按键完成并且元素正在文本输入时发生的事件，限制只能输入数字
        private void TextBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
        {
            int textBoxInt;
            //转化按下的键为数字，如果不是数字则会抓取到报错信息，不键入，反之则键入
            try
            {
                textBoxInt = int.Parse($"{e.Text}");
            }
            catch (FormatException)
            {
                e.Handled = true;
            }
        }
        //焦点离开后发生的事件
        private void TextBox_LostFocus(object sender, RoutedEventArgs e)
        {
            int LostFocus;
            try
            {
                //转化为int类型，如果里面为空则会抓取错误，显示默认信息100；也可防止以0为开头的数字
                LostFocus = int.Parse(text1.Text);
                //将LostFocus转化为string类型，
                text1.Text = LostFocus.ToString();

            }
            catch (FormatException)
            {
                text1.Text = "100";
            }
        }
    }
}
